/**
 * 用户
 * Created by hjy on 2017/9/19.
 */
var User = require('../models/user');


/**
 * 注册页面
 */
exports.showSignup = function (req,res) {
    res.render('signup',{
        title:'注册页面'
    })
};

/**
 * 登录页面
 */
exports.showSignin = function (req,res) {
    res.render('signin',{
        title:'登录页面'
    })
};

/**
 * 注册
 */
exports.signup = function (req,res) {
    var _user = req.body.user;　// 获取到数据
    /**
     * 判断用户是否存在
     */
    User.findOne({name:_user.name}, function (err,user) {
        if(err){
            console.log(err);
        }

        if(user){　//用户存在,跳转到登录页
            return res.redirect('/signin')
        }else{  //新增用户
            var user = new User(_user);

            user.save(function (err,user) {
                if(err){
                    console.log(err);
                }

                res.redirect('/');
            })
        }
    })

    // 三种获取参数方法
    // 1、 /user/signup/:userid
    // var _userid = req.params.userid

    // 2、 /user/signup/1111?userid=1112
    // var _userid = req.query.userid

    // 3、接收表单提交过来的参数
    // var _user = req.body.user
    // console.log(_user)/* 在控制台输出：帐号、密码 */
};

/**
 * 用户登录
 */
exports.signin = function (req,res) {
    var _user = req.body.user;
    var name = _user.name;
    var password = _user.password;

    User.findOne({name:name},function (err,user) {
        if(err){
            console.log(err);
        }

        if(!user){  //用户不存在
            return res.redirect('/signup');
        }

        user.comparePassword(password,function (err,isMatch) {  //　判断密码是否正确
            if(err){
                console.log(err);
            }

            if(isMatch){
                console.log('密码正确');
                req.session.user = user;//保存用户
                return res.redirect('/');
            }else{
                console.log('密码不正确');
                return res.redirect('/signin');
            }
        })
    })
};

/**
 * 退出
 */
exports.logout = function (req,res) {
    delete req.session.user;
    // delete app.locals.user

    res.redirect('/');
};

/**
 * 用户列表页
 */
exports.list = function (req,res) {
    User.fetch(function (err,users) {
        if(err){
            console.log(err);
        }

        res.render('userlist',{
            title:'imooc 用户列表页',
            users:users
        })
    })
};


/**
 *  用户权限：判断是否登录
 */
exports.signinRequired = function (req,res,next) {
    var user = req.session.user;

    if(!user){
        return res.redirect('/signin');
    }

    next();
};

/**
 *  管理员权限：判断是否有权限
 */
exports.adminRequired = function (req,res,next) {
    var user = req.session.user;

    if(user.role <= 10){
        return res.redirect('/signin');
    }

    next();
};
